package br.com.pesca.controller;

import br.com.pesca.dao.UsuarioDAO;
import br.com.pesca.entity.Usuario;
import java.io.Serializable;
import java.util.List;

public class UsuarioController implements Serializable {

    private static final long serialVersionUID = 1L;

    private UsuarioDAO usuarioDAO;

    public UsuarioDAO getUsuarioDAO() {
        if (usuarioDAO == null) {
            usuarioDAO = new UsuarioDAO();
        }
        return usuarioDAO;
    }

    public void setUsuarioDAO(UsuarioDAO usuarioDAO) {
        this.usuarioDAO = usuarioDAO;
    }

    public Usuario validarUsuario(String usuario, String senha) {
        getUsuarioDAO().startOperation();
        Usuario usuarioValido = getUsuarioDAO().buscarUsuario(usuario);
        getUsuarioDAO().stopOperation(false);
        if (usuarioValido == null || !usuarioValido.getSenha().equals(senha)) {
            return null;
        }
        return usuarioValido;
    }

    public void atualizaUsuario(Usuario usuario) {
        getUsuarioDAO().startOperation();
        getUsuarioDAO().update(usuario);
        getUsuarioDAO().stopOperation(true);
    }

    public List<Usuario> buscarUsuarios(Usuario.NivelDeAcesso nivelDeAcesso) {
        getUsuarioDAO().startOperation();
        List<Usuario> usuarios = getUsuarioDAO().buscarUsuarios(nivelDeAcesso);
        getUsuarioDAO().stopOperation(false);
        return usuarios;
    }
}
